1. Field of the Invention
The present invention is generally related to packet transfer apparatuses, more particularly, to session control for packet transfer apparatuses adopting forwarding and control element separation architecture.
2. Description of the Related Art
Recent packet transfer apparatuses, such as gateways and routers, often adopt forwarding and control element separation architecture. Such packet transfer apparatuses are typically composed of one or more forwarding elements, and one or more control elements.
The most promising forwarding elements are network processors, which achieve fast packet forwarding by using software. Network processors have an advantage of flexibility over dedicated hardware such as ASIC (application specific integrated circuit) devices.
Conversely, control elements are typically based on general-purpose processors for providing control functionality.
Network processors and general-purpose processors are differently configured because of their different requirements. In order to achieve fast packet forwarding, network processors are configured to perform simple packet processing using size-reduced memories and low-level languages. This implies that network processors are not suitable for performing complex packet processing, including IP option processing, packet filtering in units of sessions, and packet termination. In contrast, general-purpose processors are configured to perform complex packet processing using increased memories and high-level languages, operating on general-purpose operating systems. Many operating systems support TCP/IP protocol processing, some further support filtering, address translation, and encryption, and this allows general-purpose processors to provide various functions for users. Therefore, in typical packet transfer apparatuses, network processors are designed to support processing on layer 3 and below, while general-purpose processors are designed to support IP option processing and other processing on layer 4 and above.
Although being superior in flexibility, general-purpose processors experience reduced processing speed. In order to solve this problem, packet transfer apparatuses often adopt load distribution architecture, each including multiple general-purpose processors. This effectively improves performances of packet transfer apparatus through parallel processing.
Packet transfer apparatuses are required to appropriately perform session control. Packets associated with the same session should be transferred to the same destination. Additionally, session control is desirably performed so as to avoid packet out-of-order problems.
Typical packet transfer apparatuses achieve session control using session management tables, as disclosed in Japanese Open Laid Patent Applications No. P2002-359637, 2001-345854, and 2000-349851; however, these documents do not disclose any appropriate session control technique for packet transfer apparatuses including a plurality of general-purpose processors. Although Japanese Open Laid Patent Application No. 2002-351760 discloses load distributing apparatuses, this technique is only related to load distribution among servers, not related to general-purpose processors within packet transfer apparatuses.